package cn.jtfadmin.base.lang.config.user;

import cn.jtfadmin.base.lang.common.security.UserDetails;
import cn.jtfadmin.base.lang.config.user.UserHolder;

/**
 * 用户的实际持有者<br/>
 * 实际调用位置为UserHolder
 * @see UserHolder
 * @author jtf
 * @since 0.0.1
 */
public interface UserRealHolder {


    /**
     * 获取用户details
     * @return UserDetails,如果当前人没有返回空
     */
    UserDetails getUserDetails();

    /**
     * 获取当前登录token
     * @return
     */
    String getToken();

    /**
     * 刷新当前用户
     * @return 刷新后的数据
     */
    UserDetails refreshCurrentUser();

    /**
     * 构建用户明细
     * @param userId 用户id
     * @param userType 用户类型
     * @return
     */
    UserDetails builderUserDetails(String userId, String userType);
}
